// @/types/route.ts
import type { RouteObject } from "react-router-dom";
import type { ReactNode } from "react";

// 扩展路由属性（自定义的title、icon等）
interface ExtendedRouteExtra {
  title?: string;
  iconName?: string;
  icon?: ReactNode;
  componentPath?: string;
  accessRoles?: string[];
}

// 联合类型：普通路由（可含children） | 索引路由（不含children）
export type ExtendedRouteObject = (
  // 普通路由：index为false或undefined，可含children
  | (RouteObject & ExtendedRouteExtra & {
      index?: false;
      children?: ExtendedRouteObject[];
    })
  // 索引路由：index为true，禁止children
  | (RouteObject & ExtendedRouteExtra & {
      index: true;
      children?: never; // 索引路由不能有children
    })
);